<template>
  <el-form :model="form" ref="form" label-width="100px" :inline="inline">
    <!-- ref是js层能通过this.$refs.form拿到这个dom元素 -->
    <el-form-item
      v-for="item in formLabel"
      :key="item.label"
      :label="item.label"
    >
      <el-input
        v-if="item.type === 'input'"
        :placeholder="'请输入' + item.label"
        v-model="form[item.model]"
      >
      </el-input>
      <el-switch v-if="item.type === 'switch'" v-model="form[item.model]">
      </el-switch>
      <el-date-picker
        v-if="item.type === 'date'"
        v-model="form[item.model]"
        type="date"
        placeholder="选择日期"
      >
      </el-date-picker>
      <el-select
        v-if="item.type === 'select'"
        v-model="form[item.type]"
        placeholder="请选择"
      >
        <el-option
          v-for="item in item.opts"
          :key="item.value"
          :label="item.label"
          :value="item.value"
        >
        </el-option>
      </el-select>
    </el-form-item>
    <!-- 如果还需要别的表单组件 我们可以定义插槽 -->
    <el-form-item>
      <slot></slot>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  name: 'CommonForm',
  props: {
    formLabel: Array,
    form: Object,
    inline: Boolean
  },
  data() {
    return {}
  },
  //生命周期 - 创建完成（访问当前this实例）
  created() {},
  //生命周期 - 挂载完成（访问DOM元素）
  mounted() {}
}
</script>
<style scoped></style>
